package com.example.gym_manage_system.view.components.button;

import com.example.gym_manage_system.tools.GetProps;

import javax.swing.*;
import java.awt.*;
import java.util.Properties;

/**
 * @author qzy
 * @description 描述
 * @create 2023-12-13 14:22
 */
public class MyButton {

    private static final Properties props = GetProps.init();
    private static final String primaryColor = props.getProperty("primary_color");
    private static final String successColor = props.getProperty("success_color");
    private static final String warningColor = props.getProperty("warning_color");
    private static final String dangerColor = props.getProperty("danger_color");
    private static final String infoColor = props.getProperty("info_color");
    static int buttonWidth = Integer.parseInt(props.getProperty("btn_width"));
    static int buttonHeight = Integer.parseInt(props.getProperty("btn_height"));

    /**
     * 初始化基础按钮
     * @param text
     * @return
     */
    public static JButton baseBtn(String text) {
        JButton button = new JButton();
        button.setText(text); // 设置文本
        button.setFont(new Font("微软雅黑", Font.BOLD, 15)); // 设置文本样式
        button.setBorderPainted(false); // 取消边框
        button.setFocusPainted(false); // 取消选中时的边框
        button.setForeground(Color.white);
        // 设置按钮鼠标悬浮时样式
        button.setCursor(new Cursor(Cursor.HAND_CURSOR));

        button.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文本在图片中心
        button.setVerticalTextPosition(SwingConstants.CENTER);// 垂直方向文本在图片中心

        button.setSize(buttonWidth, buttonHeight); // 设置文本大小
        return button;
    }

    /**
     * 主题按钮
     * @param text 按钮文字
     * @return
     */
    public static JButton themeBtn(String text) {
        JButton button = baseBtn(text);
        button.setBackground(Color.decode(primaryColor));
        return button;
    }


    /**
     * 成功按钮
     * @param text 按钮文字
     * @return
     */
    public static JButton successBtn(String text) {
        JButton button = baseBtn(text);
        button.setBackground(Color.decode(successColor));
        return button;
    }

    /**
     * 警告按钮
     * @param text 按钮文字
     * @return
     */
    public static JButton warningBtn(String text) {
        JButton button = baseBtn(text);
        button.setBackground(Color.decode(warningColor));
        return button;
    }

    /**
     * 危险按钮
     * @param text 按钮文字
     * @return
     */
    public static JButton dangerBtn(String text) {
        JButton button = baseBtn(text);
        button.setBackground(Color.decode(dangerColor));
        return button;
    }

    /**
     * 普通按钮
     * @param text 按钮文字
     * @return
     */
    public static JButton infoBtn(String text) {
        JButton button = baseBtn(text);
        button.setBackground(Color.decode(infoColor));
        return button;
    }
}
